Software development is a difficult business. A prospective software developer must first train himself or herself in architecting and programming software. He or she must then stay up-to-date on ever-changing programming languages and technologies. And he or she must have an idea. The developer then needs to figure out how to implement the idea through programming within the resources that are available on the target computing platform, and within their own time and financial constraints. In addition, he or she needs to have people test the program in different settings, and make corrections to fix bugs in the program. The developer must then figure out how to price and distribute the software and get people interested in it.
Advanced programming environments helps to resolve some of these problems—i.e., they make the organization and typing of code more automated. In addition, the recent advent of on-line app stores for wireless computing devices such as smart phones and netbooks has made it much easier for small developers to market and sell software. Both of these developments have made life better for software developers and for the people who buy their software. Still, the life of a software developer is a hard one. For example, it can still be difficult to obtain feedback from users of a program and to analyze that feedback in an effective manner. For example, many developers provide an email link with an application by which customers can provide feedback.